using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace WWB.DisqusSharp.Model.DisqusDTO
{
    public class PostBase
    {
        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("id")]
        public string Id { get; set; }

        [JsonProperty("parent_post")]
        public string ParentPostId { get; set; }

        [JsonProperty("imported")]
        public bool Imported { get; set; }

        [JsonProperty("created_at")]
        public DateTime CreatedAt { get; set; }

        [JsonProperty("is_anonymous")]
        public bool IsAnonymous { get; set; }

        [JsonProperty("points")]
        public int Points { get; set; }

        [JsonProperty("anonymous_author")]
        public DisqusAnonymousAuthor AnonymousAuthor { get; set; }

        [JsonProperty("author")]
        public DisqusKnownAuthor Author { get; set; }
    }

    public class CreatedPost : PostBase
    {
        [JsonProperty("forum")]
        public string ForumId { get; set; }

        [JsonProperty("thread")]
        public string ThreadId { get; set; }

        [JsonProperty("shown")]
        public bool Shown { get; set; }

    }

    public class ThreadPost : PostBase
    {
        [JsonProperty("status")]
        public string Status { get; set; }

        [JsonProperty("ip_address")]
        public string IpAddress { get; set; }

        [JsonProperty("forum")]
        public Forum Forum { get; set; }

        [JsonProperty("thread")]
        public DisqusCategoryIdThread Thread { get; set; }

        [JsonProperty("has_been_moderated")]
        public bool HasBeenModerated { get; set; }
    }
}